package servlet;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * Questa classe contiene un insieme di costanti associate ai nomi dei parametri
 * passati nelle richieste html.
 *
 * @author Rachid Ouchary, Fabio Strocco, Max Passaghe, Marco Tansini.
 */
public class ServletUtil {
    public static String OPERATION = "operation";
    public static String ACTION_REGISTRAZIONE = "registrazione";
    public static String ACTION_LOGIN = "login";
    public static String ACTION_LOGOUT = "logout";
    public static String ACTION_MODIFICA_UTENTE = "modifica_utente";
    public static String ACTION_GET_MODIFICA_UTENTE = "get_modifica_utente";
    public static String ACTION_GET_CREA_DESIDERIO = "get_crea_desiderio";
    public static String ACTION_AGGIUNGI_AMICO = "aggiungi_amico";
    public static String ACTION_CERCA_AMICI = "cerca_amici";
    public static String ACTION_AGGIUNGI_DESIDERIO = "aggiungi_desiderio";
    public static String ACTION_CREA_DESIDERIO = "crea_desiderio";
    public static String ACTION_VISUALIZZA_WISHLIST = "visualizza_WishList";
    public static String ACTION_MODIFICA_DESIDERIO = "modifica_desiderio";
    public static String ACTION_GET_RESOURCE = "get_resource";
    public static String ACTION_PRENOTA = "prenota";
    public static String ACTION_MESSAGE = "message";
    public static String PARAM_USERNAME = "username";
    public static String PARAM_PASSWORD = "password";
    public static String PARAM_NOME = "nome";
    public static String PARAM_COGNOME = "cognome";
    public static String PARAM_CITTA = "citta";
    public static String PARAM_PROFESSIONE = "professione";
    public static String PARAM_MAIL = "mail";
    public static String PARAM_USERNAME_AMICO = "username_amico";
    public static String PARAM_ITEM_ID = "item_id";
    public static String PARAM_WISH_ID = "wish_id";
    public static String PARAM_PRIORITY = "priority";
    public static String PARAM_VOTO = "voto";
    public static String PARAM_CATEGORIA = "categoria";
    public static String PARAM_DESCRIZIONE = "descrizione";
    public static String PARAM_RESOURCE = "resource";
    public static String PARAM_ERROR = "erorr";
    public static String PARAM_WISHLIST = "wishList";
    public static String PARAM_UTENTE = "utente";
    public static String PARAM_RIC_USERNAME = "ric_username";
    public static String PARAM_RIC_NOME = "ric_nome";
    public static String PARAM_RIC_COGNOME = "ric_cognome";
    public static String PARAM_RIC_EMAIL = "ric_email";
    public static String PARAM_LISTA_RICERCA = "lista_ricerca";
    public static String PARAM_CERCA_AMICI = "cerca_amici";
    public static String PARAM_MESSAGE = "message";
    public static String PARAM_EBAY_RESULTS = "ebay_results";
    public static String PARAM_CATEGORY_LIST = "category_list";
    public static String PARAM_MAIN_CATEGORY = "main_category";
    public static String PARAM_SUB_CATEGORY = "sub_category";
    public static String PARAM_WISHLISTOWNER = "wishlist_owner";
    public static String PARAM_IS_USER_WISHLIST = "is_user_wishlist";
    public static String SESSION_UTENTE = "utente";

    /**
     * Restituisce il valore del parametro con il nome specificato ,oppure un valore di default
     * se questo  non esite.
     * @param request la richiesta http
     * @param name nome del parametro
     * @param defaultValue valore di defaul del paramtro
     * @return parametro con il nome specificato ,oppure un valore di default se questo  non esite.
     */
    public static Object getParameter(HttpServletRequest request,
            String name, String defaultValue) {

        Object param = request.getParameter(name);

        if (param == null) {
            return defaultValue;
        } else {
            return param;
        }
    }

    /**
     * Restiuisce l'operazione da eseguire dalle servlet.
     *
     * @param request la richiesta http corrente.
     * @return l'operazione da eseguire.
     */
    public static String getOperation(HttpServletRequest request) {
        String result = (String) request.getAttribute(OPERATION);

        if (result == null) {
            result = request.getParameter(OPERATION);
        }

        return result;
    }

    public static boolean isLogged(HttpSession session) {

        return (session.getAttribute(SESSION_UTENTE) != null);

    }
}
